#!/usr/bin/env python
# -*- coding: utf-8 -*-
'''

【需求详情】
导出b2b表hunt007的b2bPageUrl，查看其id分布规律

现状：
人工浏览网页，最大有6000w个id，但是其中有绝大部分是不连续的，
现在需要快速遍历完这些id  url，因此需要先将大概率有效的id 进行优先爬取。给出一个通用解决方案，来解决类型问题

目前想法：
最初名单： 固定范围跳号（每间隔900-1000）
导号验证：如果这个范围有，那么则 +=（900-1000）均加入新名单，
跑一轮将id导出查看分布，重复验证与生成名单


'''

import sys

sys.path.append('/mnt/moonbrook/Moonbrook')
from aes import contact_aes, name_aes
import os
import re
import json
import time
import requests
from copy import deepcopy
from datetime import datetime, timedelta
from apscheduler.schedulers.blocking import BlockingScheduler

from base import ExportAndTjBase
from models import MongoQueryConfig, RobotConfig
from utils import Utils
from robot import DingtalkRobot

reload(sys)
sys.setdefaultencoding('utf-8')


class ExportAndTj(ExportAndTjBase):
    week_min, week_max = Utils.get_date_range(ndays=7)


    def __init__(self, *args, **kwargs):
        super(ExportAndTj, self).__init__(*args, **kwargs)
        # todo other col


    def handle_one_mongo_data(self, record_dic, save_result_dic=None):
        b2bPageUrl = record_dic.get('b2bPageUrl', '')
        b2bContact = record_dic.get('b2bContact', '')
        if not len(b2bContact):
            self.write_dc_f.write('{}\n'.format(b2bPageUrl))

        return save_result_dic

    def run(self):
        # 需要统计的维度
        save_result_dic = {
        }
        # 查询mongo的配置，这些配置写在一起主要是为了借鉴起来方便
        config = MongoQueryConfig.dsf_s25_dc_config()
        result_dic = self.get_data_from_mongo(config, save_result_dic)





def run(file_name):
    # py文件名/file_name+小时时间
    abs_file_name = Utils.generate_abs_path(file_name, current_py_path=__file__)
    export_and_tj = ExportAndTj(abs_file_name)
    export_and_tj.main()


def scheduler_run(file_name):
    # py文件名/file_name+小时时间
    abs_file_name = Utils.generate_abs_path(file_name, current_py_path=__file__)
    scheduler = BlockingScheduler()
    scheduler.add_job(func=run, trigger='cron',
                      args=(abs_file_name,),
                      # day_of_week="sun",
                      hour='20', minute='52', id='dd_run')
    scheduler.start()


if __name__ == '__main__':
    file_name = 'zhaozhaoqu_有contact_url导出'
    run(file_name)
    # scheduler_run(file_name)
